package com.travelgroup.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.travelgroup.domain.entity.Notification;
import com.travelgroup.domain.entity.PaymentOrder;
import com.travelgroup.domain.entity.TourGroup;
import com.travelgroup.domain.entity.User;
import com.travelgroup.enums.NotificationType;
import com.travelgroup.exception.R;

import java.util.List;

public interface INotificationService extends IService<Notification> {

    void sendNotification(String title, String message, TourGroup group, User user, List<Long> rememberIds);

    void batchSendNotifications(String title, String content, NotificationType type, List<Long> recipientIds);

    R<List<Notification>> queryMyNotifications();

    R<Notification> queryNotificationById(Long id);

    void sendPaidNotification(String title, String message,String orderNo, Long userId, Long groupId);

    void sendRefundNotification(Long userId, String title, String content, String orderNo, String amount);

    void sendCancellationNotifications(Long organizerId, String groupTitle, List<PaymentOrder> paymentOrders, String cancelReason);
}
